import axios from 'axios';
import { ElMessage } from 'element-plus';
//引入用户仓库
import useUserStore from '@/store/modules/User';
const request = axios.create({
    baseURL:'/api',//设置公共的路径
    timeout:5000,//设置响应试卷
})

//请求拦截器
request.interceptors.request.use((config)=>{
    //config是请求拦截器注入的对象，需要将它返回，负责连请求都发不了
    //获取仓库数据
    let UserStore = useUserStore();
    //通过请求头携带token
  if(UserStore.token) {
    config.headers.token = UserStore.token;
  }
    return config;
})
//响应拦截器
request.interceptors.response.use((response)=>{
    return response.data;
},(error)=>{
    //处理http请求错误
    let status = error.response.status;
    switch(status) {
        case 401:
            ElMessage.error('未授权，请登录');
            break;
        case 400:
            ElMessage.error('请求失败');
            break;
        case 408:
            ElMessage.error('请求超时');
            break;
        case 502:
            ElMessage.error('网络错误');
            break;
        case 504:
            ElMessage.error('网络超时');
            break;
        case 505:
            ElMessage.error('HTTP版本不受支持');
            break;
        case 404:
            ElMessage.error('请求的资源不存在');
            break;
        case 403:
            ElMessage.error('请求被拒绝');
            break;
        case 500:
            ElMessage.error('服务器内部错误');
            break;
        default:
            ElMessage.error(error.message);
            break;
    }
    return Promise.reject(new Error(error.message));
})

export default request;